home *** CD-ROM | disk | FTP | other *** search
- Chapter 4
-
- The QEMM.COM Program
-
- This chapter describes the features of the QEMM.COM program. The
- program has two purposes. You use QEMM.COM to change the mode
- (state) of QEMM to ON, OFF or AUTO. You also use QEMM.COM to
- report status information about QEMM and report information about
- your first megabyte of memory. QEMM.COM displays first meg
- information in either map or list format. The information
- displayed by QEMM.COM is the same as that displayed by
- Quarterdeck's Manifest program for the QEMM-386 category.
-
- QEMM.COM commands consist of QEMM followed by a command line
- parameter. If the command line parameter has a long name, you can
- enter an abbreviation instead of the name. This abbreviation is
- shown in parentheses following the parameter name.
-
- There are two command line parameters that will help you use
- QEMM.COM:
-
- ~Item~ ? lists all the names and abbreviations of all QEMM.COM
- command line parameters.
-
- ~Item~ Help displays the option name and a one line description.
-
- To enter these commands:
-
- ~Step~ Type QEMM ? and press <Enter>, or
-
- ~Step~ Type QEMM HELP and press <Enter>.
-
- The information requested is displayed on the screen.
-
- Two command line parameters control the display of messages from
- QEMM.COM. These are:
-
- ~Item~ NOPAUSEONERROR (NOPE) instructs QEMM.COM not to display
- the message, "Press any key to continue, ESC to abort". This
- message is normally displayed when you enter a wrong QEMM.COM
- command line parameter.
-
- ~Item~ PAUSE instructs QEMM.COM to pause for a key before
- executing a command.
-
- One command line parameter controls QEMM.COM's report formats:
-
- ~Item~ MAP instructs QEMM.COM to display its report in a map
- format.
-
- The default report format is a list.
-
- This modifier changes the report format to a map. For example, to
- display the QEMM.COM Accessed report as a map:
-
- ~Step~ Type QEMM ACCESSED MAP and press <Enter>.
-
- QEMM-386 watches what memory is accessed by programs~dash~so that
- QEMM.COM can at any time display a report about what memory has
- been accessed and what has not. QEMM.COM also can perform an
- analysis to find any additional memory you can use to load TSRs,
- drivers, and DOS resources into high memory.
-
- To give you control over when QEMM.COM begins watching memory to
- determine what memory is accessed, QEMM.COM has a command line
- parameter called RESET.
-
- ~Item~ RESET resets the state of memory to unaccessed.
-
- RESET is useful to use before running a program, so that you can
- determine which areas of memory are accessed by a specific
- program.
-
- ~Subhead~ Changing QEMM's Mode
-
- There may be times when you wish to change the current mode of
- QEMM. The mode controls whether QEMM puts the system into virtual
- 8086 mode and how expanded memory should be handled. You can set
- the current mode to AUTO, ON, or OFF.
-
- ~Item~ AUTO (AU) specifies that QEMM should turn ON when a
- program needs expanded memory.
-
- ~Item~ ON specifies that expanded memory is available and the
- processor is in virtual 8086 mode.
-
- ~Item~ OFF specifices that expanded memory is not available and
- the processor is in real mode.
-
- The mode is forced ON if conventional or video memory is filled,
- high RAM or ROMs are mapped, conventional memory is sorted, or
- expanded memory is in use.
-
- To change the current mode to ON:
-
- ~Step~ Type QEMM ON and press <Enter>.
-
- The mode is then changed. You can change the mode to OFF or AUTO
- in the same way you changed the mode to ON, provided there are no
- conditions which have forced the mode ON.
-
-
- ~Subhead~ QEMM.COM Reports
-
- QEMM.COM has five reports which give you information you may use
- to optimize your memory configuration. If you have no parameters
- on the QEMM line, you will get the Summary report followed by the
- Type report. These five reports are as follows:
-
- ~Item~ Summary: This report displays the current mode of QEMM,
- the expanded memory currently available, and the page frame
- address.
-
- ~Item~ Type: This report displays what types of memory exist in
- your first megabyte of address space.
-
- ~Item~ Accessed: This report indicates the areas of memory that
- have and have not been accessed from the time QEMM started
- running (or you did a QEMM RESET) until the time of the display.
-
- ~Item~ Analysis: This report gives a cross-reference of the
- information in the Accessed and Type reports. Based upon what
- memory has been specified and how QEMM.SYS is currently
- configured, Analysis suggests command line parameters that could
- be given to QEMM.SYS to more efficiently use high memory. You
- should follow these recommendations only if you follow the
- analysis procedure discussed on page 31.
-
- ~Item~ Memory: This report gives you an accounting of the memory
- in your PC (conventional, high RAM, extended, and expanded) both
- before and after QEMM.SYS has configured this memory.
-
- You can display three reports, (Type, Accessed, and Analysis)
- either in list or map format.
-
-
- ~Subhead~ QEMM .COM Summary
-
- QEMM.COM Summary presents you with the summary status
- information about QEMM.SYS.
-
- Mode refers to the current state of QEMM.SYS. When there is high
- RAM, ROM mapping, memory back-filling, or video filling, QEMM's
- mode is ON and may not be turned OFF. Otherwise, QEMM's mode is
- typically either AUTO/ON or AUTO/OFF, depending upon whether
- expanded memory is in use. If QEMM's mode is OFF (without the
- AUTO) then expanded memory is not accessible until you change the
- mode.
-
- Expanded Memory Available reflects the amount of memory
- available to programs which support EMS.
-
- Page Frame gives the address of the page frame. This entry
- indicates "none" if there is no page frame allocated and
- supported.
-
-
-
- ~Subhead~ QEMM.COM Type
-
-
- QEMM.COM Type presents you with two views of the first megabyte
- of memory as seen by QEMM-386. The default view is a
- list~dash~giving memory area, size of the area in K, and how it
- is being used (see below). To get a visual picture of how your
- memory is configured:
-
- ~Step~ Type QEMM Type Map and press <Enter>.
-
- In the map, each row of the map contains 16 characters
- representing 64K of memory. Each character (+ * F H M X V A R /)
- represents 4K of memory~dash~and has a special meaning, as
- described. Base addresses are indicated in the left column (0n00
- at the top through Fn00 at the bottom). To determine a particular
- 4K area replace the value "n" with the character listed at the
- top of the screen.
-
- You use these reports to determine the effect of QEMM-386's
- management of memory in your PC.
-
- Key terms used in QEMM.COM Type are as follows:
-
- ~Item~ Mappable (+): areas of memory which can be mapped using
- EMS function calls. These areas must be 16K in size and aligned
- on 16K boundaries. Areas of high memory that are marked as
- Mappable can also be converted to high RAM by adding the RAM
- switch to the QEMM.SYS command line.
-
- ~Item~ Rammable (*): areas of memory which can be mapped by
- QEMM-386 but are too small to be accessed by EMS function calls.
- You must add the RAM switch to the QEMM.SYS command line to fill
- the area with memory for use as high RAM.
-
- ~Item~ Page Frame (F): a mappable area, 64K in size, which is the
- place that EMS 3.2 programs use for expanded memory access. Other
- mappable regions are only used by programs written specifically
- for EMS 4.0 or EEMS.
-
- ~Item~ High RAM (H): areas above conventional memory which have
- been filled with RAM by QEMM-386. Any areas above conventional
- memory marked as Mappable (+) or Rammable (*) may be converted to
- high RAM (H) by adding the RAM switch to the QEMM.SYS command
- line. Once it has been added and the system re-booted, high RAM
- areas may be used by QEMM's programs to load TSRs and device
- drivers.
-
- ~Item~ Mapped ROM (M): addresses of Read Only Memory which have
- been copied to RAM, and then mapped into the original addresses
- by QEMM's ROM switch. Mapping ROMs lets ROM code run in fast
- memory. QEMM automatically maps one page of the system ROM from
- F000-FF00 to detect reboots.
-
- ~Item~ Excluded (X): areas of memory which have been explicitly
- excluded from use by the Exclude switch. QEMM-386 automatically
- excludes the addresses from 0000 to 0FFF. If your adapter card
- fails to identify itself properly, QEMM may try to use all or
- part of the memory addresses used by the adapter as either high
- RAM or Mappable memory. You must explicitly exclude the
- conflicting memory areas from QEMM or problems will occur.
-
- ~Item~ Video (V): addresses reserved for video display memory.
-
- ~Item~ Adapter RAM (A): regions of memory which have RAM mapped
- into them by other adapter cards.
-
- ~Item~ ROM (R): regions of Read Only Memory which have not been
- re-mapped by the QEMM.SYS ROM switch.
-
- ~Item~ Split ROM (/): addresses which QEMM.SYS has detected as
- having ROM which occupies only a portion of the 4K area. Such
- areas cannot be re-mapped by the QEMM.SYS ROM switch.
-
- ~Subhead~ QEMM.COM Accessed
-
-
- QEMM.COM Accessed presents you with two views of the first
- megabyte of memory~dash~indicating the 4K regions of memory that
- have and have not been accessed from the time QEMM started (or
- you did a QEMM RESET) until the time of the display. This
- information is only valid if QEMM has been ON.
-
- The first view is a list of this information. The second view is
- a map.
-
- QEMM.COM uses the term Unaccessed (U) to refer to the areas of
- memory which have not been read or written by a program.
- Potentially, those areas above 640K may be usable for mapping
- high RAM.
-
- QEMM.COM also distinguishes between areas of memory that have
- been read by a program~dash~Accessed (A), and areas of memory
- which have had data written to them by a program, Written (W),
- when the map format is used.
-
-
- You can use the Accessed report to determine how big a program is
- (i.e. how much conventional memory it accesses and writes into)
- and whether a program accesses or writes into an area of high
- memory.
-
- Inaccuracy of Accessed Map for Mappable Regions: The information
- displayed may not be accurate for mappable regions. When the
- computer maps memory into a mappable area, the process of mapping
- clears the state of the region, and makes it appear to be
- unaccessed. This clearing occurs often in the conventional areas
- of memory in DESQview by virtue of multitasking. Active use of
- the Page Frame for mapping will also clear these indicators.
- Other areas are not so frequently mapped.
-
-
- ~Subhead~ QEMM.COM Analysis
-
-
- QEMM.COM Analysis presents you with two views of your PC's first
- megabyte of memory~dash~indicating QEMM.COM's assessment of what
- memory is OK to use, what memory should be excluded and what
- should be included. This assessment is based upon you having had
- QEMM.COM watch what memory was accessed by your programs. This
- enables you to better optimize the use of your memory.
-
- The default view is in list form. The alternate view of this
- information is in map format. You use the map to see what memory
- can be used. However, the list gives you the memory addresses
- that you may instruct QEMM.SYS to include or exclude.
-
- WARNING: The steps you must follow in order for the QEMM-386
- Analysis screen to be accurate are described later in this
- section. If you do not follow this procedure, the information in
- these screens may not be valid, and any and all changes you make
- based on these reports may be inappropriate.
-
-
- There are three terms used in this report:
-
- ~Item~ OK (O): areas of memory that have been properly specified
- to QEMM.
-
- ~Item~ Exclude (X): areas of memory that have been used by a
- program, but QEMM did not expect it to. You should use the
- EXCLUDE switch to QEMM to prevent QEMM from using these areas.
-
- ~Item~ Include (I): areas of high memory that have not been used
- by a program, but have been reserved by QEMM. You may use the
- INCLUDE switch to QEMM to allow QEMM to use these areas.
-
-
- ~Subhead~ Analysis Procedure
-
- The Benefit of QEMM.COM Analysis: As you run your programs, QEMM
- is recording the memory accessed by these programs. QEMM then
- analyzes the memory accessed and recommends how to best configure
- QEMM.SYS for optimum use of memory. The end result of analyzing
- your memory is that more of your high memory may become usable
- for memory resident programs, device drivers, and DOS
- resources~dash~resulting in more conventional memory for your
- programs.
-
- However, for QEMM to accurately determine what high memory
- addresses are used requires several sequential steps, all of
- which must be performed before accurate results will be obtained.
-
- ~Item~ Modify the QEMM.SYS command line in CONFIG.SYS so it
- specifies only the ON and MAPS=0 parameters.
-
- ~Item~ Save your CONFIG.SYS file and re-boot your PC.
-
- ~Item~ Run all of your programs and perform all of their
- functions. If you use DESQview, you should start it, select any
- options other than summary programs and quit out.
-
- ~Item~ Access all of the hardware in your computer. If you have
- two monitors connected to your computer, display information on
- each of them. Access all of your disk drives. Format a diskette.
- Print a document. If you have a network adapter card, a 3270 card
- or the like, connect to it.
-
- ~Item~ Do not run utilities other than QEMM or Manifest which
- check the functioning of your computer's hardware, especially
- those that check memory.
-
- ~Item~ After you have run every program you use, display
- QEMM.COM's Analysis report.
-
- ~Item~ Examine the Analysis and note the suggestions. Update the
- QEMM.SYS command line in CONFIG.SYS to include or exclude memory
- areas specified in the Analysis List and to remove the ON and
- MAPS=0 parameter you added earlier.
-
- Verify Your QEMM Configuration: If you want to verify that
- you've optimized the use of your memory, repeat the Analysis
- process and display the Analysis List. You should see " 0000 -
- FFFF 1024K OK". If you see additional Exclude (X) areas, you
- may want to use them. If you see additional Include (I) areas,
- ignore them unless you have followed the complete procedure.
-
- ~Subhead~ QEMM.COM Memory
-
- QEMM.COM Memory gives you an accounting of the memory in your PC
- (conventional, high RAM, extended, and expanded) before and after
- QEMM-386 has configured this memory.
-
- On some computers there will be a fifth category, either Top
- Memory (as seen on Compaqs) or shadow RAM (as seen only on
- machines using the Chips & Technologies chip set).
-
- You use this report to:
-
- ~Item~ see a summary of how QEMM has made use of your memory,
-
- ~Item~ quickly learn if QEMM can detect the shadow RAM on your
- PC,
-
- ~Item~ find out how much memory is in your PC, and how it is
- being used.
-
- The Initial column shows the totals of each type of memory when
- you turn on your PC. The Expanded and high RAM categories always
- start at 0K (zero K). The total of this column should equal the
- amount of memory in your PC.
-
- The Unavailable to QEMM column indicates memory which has been
- made unavailable to QEMM before QEMM gets a chance to use it.
- Drivers loaded before QEMM which use extended memory make that
- memory unavailable to QEMM. Also, machines with shadow RAM make
- some of it unavailable for QEMM to use.
-
- The Converted by QEMM column shows what QEMM does to your
- memory. It converts Extended memory (and Shadow RAM or Top Memory
- if you have any) into Expanded Memory and High RAM. Thus, the
- column shows some memory being "used" (subtracting from the
- available and some being "created" (adding to the available).
- QEMM can fill in missing conventional memory, so you might see it
- creating more conventional memory. The total of this column
- indicates how much memory QEMM keeps for its own use and for
- mapping your ROMs.
-
- The Leaving column shows how much memory is left over once QEMM
- is through initializing itself. These numbers are very important.
- The remaining conventional memory, usually 640K, indicates how
- much contiguous memory is accessible for your DOS programs. The
- remaining Extended memory, usually 0K, indicates how much
- Extended memory is left over for other programs to use. Note that
- if your programs can access memory through the EMS, XMS or VCPI
- interfaces, then they don't need any Extended memory left for
- them by QEMM. The remaining Expanded memory is how much memory is
- available to programs which support EMS, XMS or VCPI. The
- remaining High RAM indicates the memory available for loading DOS
- resources, TSRs, & device drivers into high memory.
-
- The box at the bottom of the screen details how QEMM uses
- memory. The first number, the total amount of memory, is the same
- as the total of the third column from the top box. The next
- numbers indicate the size of QEMM's code and data, the memory
- reserved for QEMM tasks, the memory reserved for a DMA buffer,
- the memory reserved for real alternate maps, the memory for
- mapping ROMs, and finally a small amount of memory (usually less
- than 16K) which was unused for various reasons. These numbers can
- be changed depending on the set up of your computer and your use
- of some command line parameters to QEMM.SYS.
-
- At the bottom of the screen is a number showing how much of your
- conventional memory area is being used by QEMM. This number is
- always very small.
-
- If You Think There Is More Memory in Your PC Than Is Shown:
- Check that your PC's CMOS is set up properly, and that there are
- no defective (or loose) memory chips.
-
- Why QEMM May Not Be Able to Use All of Your shadow RAM: Shadow
- RAM which overlaps ROM or installed adapter memory cannot be used
- by QEMM. Thus, shadow RAM which overlaps the system ROM, the
- video adapter ROM, the video display RAM and any other adapters
- you have will not be affected by the presence of QEMM.
-
- Let QEMM Allocate Extended Memory: We suggest that you not load
- device drivers that use extended memory before QEMM. Instead,
- reserve extended memory for later use by using QEMM's
- EXTMEM=command line switch. However, if your extended memory
- program can get its memory through XMS, you don't need to reserve
- extended memory for it.
-
- Using Maps: If you are not using a multitasking environment,
- such as DESQview, specify the MAPS=0 parameter on the QEMM.SYS
- command line to gain an additional 32K of expanded memory. If you
- are using DESQview you should have one map plus two map for each
- DESQview window you use.
-
- Unassigned: The Unassigned category of this screen represents
- that memory which QEMM-386 controls but which has not been given
- any function. After QEMM-386 has set up its data and high RAM and
- other resources, whatever is left of memory is made expanded
- memory. Since expanded memory is allocated 16K at a time, any
- memory that is less than 16K or is fragmented is left as
- Unassigned. Some of the QEMM-386 parameters can be altered (RAM,
- MAPS, ROM, primarily) to increase or decrease the amount of
- Unassigned memory, to either use it for these new purposes or to
- increase it until it becomes more expanded memory.
-